// 定义用户相关的ts类型

// 定义登陆时需要携带的data的数据类型
export interface loginFormData {
  userAccount: string
  userPassword: string
}
// 定义全部接口返回数据共用的ts类型

// 定义与Java中BaseResponse<T>对应的前端数据结构
export interface BaseResponse {
  code: number
  message: string
}
// 登录接口返回的数据类型
export interface tokenObject {
  token: string
}
export interface loginResponseData extends BaseResponse {
  data: tokenObject | any
}
// 定义获取用户信息返回的数据类型
export interface userInfoResponseData extends BaseResponse {
  data: {
    avatar: string
    buttons: string[]
    userName: string
    permissions: string[]
    routes: string[]
  }
}

// 单个用户对象的ts类型
export interface User {
  id: number
  userName: string
  roleName: string
  userAccount: string
  createTime: string
}

export interface UserAddRequest {
  userName?: string
  userAccount?: string
  userPassword?: string
}

export interface UserQueryRequest {
  userName?: string
}

export interface UserUpdateRequest {
  userName?: string
  userAccount?: string
  userPassword?: string
}
export interface PageUser extends BaseResponse {
  data: {
    current?: number
    pages?: number
    records?: Array<User>
    size?: number
    total?: number
  }
}

export interface DeleteRequest {
  id: number
}

export interface SetRoleRequest {
  id: number
  roleId: number
}
